package pe.com.certicom.moviles.model.dao;

import java.util.List;
import java.util.Map;

import pe.com.certicom.moviles.model.beans.Articulo;
import pe.com.certicom.moviles.model.beans.ArticuloExample;
import pe.com.certicom.moviles.model.beans.PeriodoFacturacion;
import pe.com.certicom.moviles.model.beans.ReporteBitacora;
import pe.com.certicom.moviles.model.beans.ReporteDetalleBitacora;
import pe.com.certicom.moviles.model.beans.ReporteEstado;

public interface ArticuloDAO {
    /**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int countByExample(ArticuloExample example);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int deleteByExample(ArticuloExample example);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int deleteByPrimaryKey(Long idArticulo);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	void insert(Articulo record);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	void insertSelective(Articulo record);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	List<Articulo> selectByExample(ArticuloExample example);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	Articulo selectByPrimaryKey(Long idArticulo);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int updateByExampleSelective(Articulo record, ArticuloExample example);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int updateByExample(Articulo record, ArticuloExample example);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int updateByPrimaryKeySelective(Articulo record);
	/**
	 * This method was generated by Apache iBATIS ibator. This method corresponds to the database table articulo
	 * @ibatorgenerated  Tue May 28 14:57:18 COT 2013
	 */
	int updateByPrimaryKey(Articulo record);
	public List<Articulo> listarArticulosAsignablesPorOperadorYMarca(String codTipoArticulo, String codOperador, Long idMarca);
    public List<Articulo> listarArticulosAReponerPorOperadorYMarca(String codTipoArticulo, String codOperador, Long idMarca);
    public List<Articulo> listarArticulosEnPerdidaPorOperadorYMarca(String codTipoArticulo, String codOperador, Long idMarca);

    public List<ReporteEstado> generarReporteEstado(Map<String,Object> parametros);
    public List<ReporteEstado> generarReporteMovimientos(Map<String,Object> parametros);
    public List<ReporteBitacora> generarReporteBitacora(Map<String,Object> parametros);
    public List<ReporteDetalleBitacora> generarReporteDetalleBitacora(Map<String,Object> parametros);
    
    public List<Articulo> listarEquiposFacturables(PeriodoFacturacion periodoFacturacion);
    int updateEquiposFacturables(PeriodoFacturacion periodoFacturacion);
    
}


